package jzqb.dao;

import jzqb.bo.QBBKBo;
import jzqb.bo.StandKnowleageBo;
import jzqb.po.AdminUserPo;
import jzqb.po.AuthorityGroupPo;
import jzqb.po.QBBKPo;
import jzqb.po.QBBKTemplatePo;
import jzqb.vo.QBBKVo;

import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * 自用库数据层接口
 */
public interface QBBKDao {

    List<QBBKVo> showQBBKList(QBBKBo qbbkBo);

    long showQBBKCount(QBBKBo qbbkBo);

    QBBKVo findQBBKBySysId(QBBKPo qbbkPo);

    Boolean addQBBK(QBBKPo qbbkPo) throws UnsupportedEncodingException;

    Boolean updateQBBK(QBBKPo qbbkPo) throws UnsupportedEncodingException;

    Integer getQBBKMaxId(QBBKPo qbbkPo);

    QBBKPo getQBBKDetail(QBBKPo qbbkPo);

    List<StandKnowleageBo> getFieldNumByFlag(QBBKBo qbbkBo);

    List<StandKnowleageBo> getDiffStatusQBBKNum(QBBKBo qbbkBo);


    /**
     * 词条审核(审核未通过|审核通过)
     *
     * @param qbbkPo
     * @return
     */
    Boolean updateQBBKStatus(QBBKPo qbbkPo);

    /**
     * 退审
     *
     * @param qbbkPo
     * @return
     */
    Boolean recallQBBK(QBBKPo qbbkPo);

    Boolean deleteQBBK(QBBKPo qbbkPo);

    /**
     * 根据权限组id 查询权限组
     *
     * @param AuditGroupId
     * @return
     */
    AuthorityGroupPo getUserMemberAndDeptMember(Integer AuditGroupId);

    /**
     * 根据部门的BelongToSql查询用户
     *
     * @param departBelongToSql
     * @return
     */
    List<AdminUserPo> getUserByDepartBelongToSql(String departBelongToSql);

    /**
     * 根据部门的BelongToSql查询用户
     *
     * @param userBelongToSql
     * @return
     */
    List<AdminUserPo> getUserByUserBelongToSql(String userBelongToSql);

    /**
     * 新建情报百科模板
     *
     * @param qbbkTemplatePo
     * @return
     */
    Boolean addQBBKTemplate(QBBKTemplatePo qbbkTemplatePo) throws UnsupportedEncodingException;

    /**
     * 修改情报百科模板
     *
     * @param qbbkTemplatePo
     * @return
     */
    Boolean updateQBBKTemplate(QBBKTemplatePo qbbkTemplatePo) throws UnsupportedEncodingException;


    List<QBBKTemplatePo> showTemplateList();

    Boolean delQBBKTemplate(Integer id);

    /**
     * 查询所有模板的名字
     *
     * @return
     */
    List<String> findAllTemplateName();
}
